package com.yidu.service;

import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpSession;

import com.yidu.domain.ListenFinance;
import com.yidu.domain.ListenPurchase;
import com.yidu.domain.ListenQualityTesting;
import com.yidu.domain.ListenSell;

/**
 * @title 采购订单Service类 
 * @author 刘武
 * @dateTime 2019年1月14日
 */
public interface ListenPurchaseService{
	/**
	 * 查询所有
	 * @param purchase 订单对象
	 * @return 订单对象集合
	 */
	List<ListenPurchase> findAll(ListenPurchase purchase);
	/**
	 * 查询行数
	 * @param purchase 订单对象
	 * @return int类型
	 */
	int findRows(ListenPurchase purchase);
	/**
	 * 删除
	 * @param purchase 订单对象
	 * @return int类型
	 */
	int delete(ListenPurchase purchase);

	/**
	 * @title 采购材料增加和修改
	 * @param ListenPurchase
	 * @return int
	 * @author 江宇
	 * @dateTime 2018年12月7日
	 * @versions 1.0
	 */
	int addUpdateMaterialPurchase(String pruchase,String pruchaseDateil,String purchaseId,HttpSession session);
	
	/**
	 * @title 查询材料采购
	 * @param ListenPurchase
	 * @return List
	 * @author 江宇
	 * @dateTime 2018年12月10日
	 * @versions 1.0
	 */
	List<ListenPurchase> materialFindAll(Map<String, Object> map);
	
	/**
	 * @title 查询材料采购行数
	 * @param ListenPurchase
	 * @return int
	 * @author 江宇
	 * @dateTime 2018年12月10日
	 * @versions 1.0
	 */
	int materialFindRows(Map<String, Object> map);
	
	/**
	 * @title 根据ID查询材料采购
	 * @param String
	 * @return ListenPurchase
	 * @author 江宇
	 * @dateTime 2018年12月10日
	 * @versions 1.0
	 */
	ListenPurchase selectPurchaseId(String purchaseId);
	
	/**
	 * @title 删除采购原材料和采购原材料明细 
	 * @param String
	 * @return int
	 * @author 江宇
	 * @dateTime 2018年12月11日
	 * @versions 1.0
	 */
	int deleteMateria(String purchaseId);
	/**
	 * 增加采购乐器和采购详情
	 * @param musicPurchase 增加采购乐器页面转过来的订单字符串
	 * @param musicPurchaseDetail 增加采购乐器页面转过来的订单详情字符串
	 * @param session 登录进来的用户信息
	 * @return int类型
	 */
	int addMusicPurchase(String musicPurchase, String musicPurchaseDetail,HttpSession session);
	/**
	 * 修改乐器
	 * @param musicPurchase 采购字符串
	 * @param musicPurchaseDetail 采购详情字符串
	 * @param purId 订单id
	 * @param session session
	 * @param updateType 修改状态
	 * @return int 类型
	 */
	int updateMusicPurchase(String musicPurchase, String musicPurchaseDetail, String purId, String updateType,HttpSession session);
	/**
	 * 显示分店采购乐器审核
	 * @param purchase 采购对象
	 * @return 采购对象集合
	 */
	List<ListenPurchase> findMusicState(ListenPurchase purchase);
	/**
	 * 查询分店采购乐器审核页数
	 * @param purchase 采购对象
	 * @return int 行数
	 */
	int findMusicStateRows(ListenPurchase purchase);
	/**
	 * 显示分店总经理采购乐器审核
	 * @param purchase 采购对象
	 * @return 采购对象集合
	 */
	List<ListenPurchase> findManagerState(ListenPurchase purchase);
	/**
	 * 查询分店总经理采购乐器审核页数
	 * @param purchase 采购对象
	 * @return int 行数
	 */
	int findManagerStateRows(ListenPurchase purchase);
	/**
	 * 通过采购订单id查询库存
	 * @param purchaseId 采购id
	 * @return  采购对象集合
	 */
	List<ListenPurchase> findByMusicalNumber(String purchaseId);
	/**
	 * 修改采购订单的状态
	 * @param purchase 采购对象
	 * @return int类型
	 */
	int updateState(ListenPurchase purchase);
	/**
	 * 增加销售
	 * @param purchaseId 采购订单id
	 * @param session 登录用户的信息
	 * @return 返回int
	 */
	int addSell(String purchaseId, HttpSession session);
	/**
	 * 增加到质检
	 * @param purchaserString 字符串
	 * @param session 登录用户的信息
	 * @return int类型
	 */
	int addQuality(String purchaserString,HttpSession session);
	/**
	 * 查看分公司质检
	 * @param map
	 * @return 质检对象集合
	 */
	List<ListenQualityTesting> findQualityAll(Map<String, Object> map);
	/**
	 * 查看分公司质检
	 * @param map
	 * @return int 行数
	 */
	int findQualityRows(Map<String, Object> map);
	/**
	 * 入库
	 * @param qtId 质检id
	 * @param vocationalWorkId 业务id
	 * @param session 登录用户的信息
	 * @return 工具类
	 */
	int addStock(String qtId, String vocationalWorkId,HttpSession session);
	/**
	 * 通过公司id查询公司财务
	 * @param site 公司id
	 * @return 公司财务对象
	 */
	ListenFinance findFinanceByCompanyId(String site);
	/**
	 * 通过采购id查询销售id
	 * @param sell 销售对象
	 * @return 采购集合
	 */
	List<ListenPurchase> findSellId(ListenSell sell);
}
